Automatic sensitivity adjustment for an autonomous mower

ABSTRACT

Methods and apparatus are disclosed for automatic sensitivity adjustment for an autonomous mower. An exemplary mower includes a drive system and one or more cameras. One or more processors are configured to generate a grass value by applying an image recognition algorithm to one or more images, instruct the drive system to autonomously adjust a velocity of current movement in response to determining that the grass value is less than or equal to a mowing threshold, determine a trigger rate that indicates how often the grass value is less than or equal to the mowing threshold within a predefined period of time, decrease the mowing threshold by a decrement in response to determining that the trigger rate is greater than an upper threshold rate, and increase the mowing threshold by an increment in response to determining that the trigger rate is less than a lower threshold rate.

CROSS-REFERENCE

This application is a continuation of U.S. patent application Ser. No.16/831,612, filed on Mar. 26, 2020, which claims the benefit of U.S.Provisional Patent App. No. 62/826,685, filed on Mar. 29, 2019, both ofwhich are incorporated by reference herein in their entirety.

FIELD OF THE INVENTION

This application relates to autonomous mowers, a category that includestractors, landscaping machinery, and other lawn-maintenance vehicles.

BACKGROUND

The lawn mower industry continues to seek ways to ease users' physicalburdens. Thus, lawn mowers have undergone an automation evolution,starting with self-propulsion, with recent developments signaling amovement towards unmanned (or autonomous) technology. These developmentsaim to purge physical labor from lawn mowing, at least as much aspossible.

The typical autonomous lawn mower includes a navigation system, whichhelps the autonomous lawn mower travel about, and stay within the boundsof, a user's lawn. Commonly, a boundary wire emitting an electromagneticfield or pulse is sensed by the autonomous lawn mower to define thebounds of the user's lawn and to identify permanent obstacles such astrees or flower beds. The autonomous lawn mower executes anobstacle-avoidance maneuver when near the boundary wire, turning awayfrom the boundary wire to remain within the area bounded by the boundarywire. Temporary obstacles and periodic changes in a lawn cannot beaddressed by a boundary wire, however, without costly and time-consumingrevisions to the boundary wire. Examples of temporary changes, andcorrespondingly, areas to be avoided by an autonomous lawn mower mayinclude repaired patches of damaged grass, temporary lawn ornaments(seasonal), a work or excavation area, young tree or shrub plantings,and the like. The typical autonomous lawn mower relies on a collision orbump sensor to deal with unexpected obstacles that can damage theencountered obstacles or the autonomous lawn mower itself.

By comparison, a vision-based navigation system can address temporaryobstacles and periodic changes in a lawn by analyzing, in real-time, theconditions in front of the lawn mower. At its most basic, an autonomouslawn mower vision system will include a camera, for example, thatcontinually captures images as the lawn mower moves forward. Thevision-based navigation system permits forward movement as long asimages of an unobstructed lawn are being received and processed.Whenever the lawn mower approaches an obstacle that the lawn mowercannot or should not mow, the camera will capture an image of thatobstacle and an image processor aboard the lawn mower will determinethat the image data represent an obstacle. The image processor can be adedicated processor in communication with a main processor responsiblefor directing movement of the lawn mower, or the main processor may alsobe enabled to process image data. As a result, the main processor willimplement some change to the lawn mower's course. As it approaches theobstacle, the lawn mower might, for example, stop within one to threeinches of the obstacle, reverse six inches, and then turn to the rightso the lawn mower can restart its movement along a path that lacks theobstacle. This is but one of many obstacle-avoidance routines that maybe programmed into the lawn mower's processor.

The vision-based navigation system's sensitivity can affect whether thesystem will detect an obstacle and/or an unobstructed lawn. Forinstance, when a portion of a lawn is completely uncovered, thevision-based navigation system may detect with a high level ofconfidence that the corresponding portion of the lawn is unobstructed.Further, when a portion of a lawn is thoroughly covered by objects(e.g., toys, tools, leaves, sticks, etc.), the vision-based navigationsystem may detect with a high level of confidence that the correspondingportion of the lawn is obstructed. When the lawn has dry grass, barespots, and/or is partially covered (e.g., by leaves, twigs, etc.), thevision-based navigation system may have difficultly determining whetherthe lawn is uncovered or obstructed. Under such conditions, whether thelawn mower continues to move forward or changes direction depends on asensitivity of the vision-based navigation system. Less sensitivevision-based navigation systems may be more likely to attempt to travelover obstructed terrain, and more sensitive vision-based navigationsystems may be less likely to travel over traversable terrain.

The Detailed Description below, and its accompanying drawings, willprovide a better understanding of the invention and set forthembodiments that indicate the various ways in which the invention may beemployed.

SUMMARY

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a grass value by applying a machine learning algorithm to theone or more images, instruct the drive system to maintain a direction ofcurrent movement for the autonomous mower based on a comparison betweenthe grass value and a mowing threshold, instruct the drive system toadjust a velocity of current movement for the autonomous mower inresponse to determining that the grass value is less than or equal tothe mowing threshold, determine a trigger rate that indicates how oftenthe grass value is less than or equal to the mowing threshold within apredefined period of time, decrease the mowing threshold by a predefinedincrement in response to determining that the trigger rate is greaterthan an upper threshold rate, and increase the mowing threshold by apredefined increment in response to determining that the trigger rate isless than a lower threshold rate.

In some embodiments, the machine learning algorithm includes aconvolutional neural network. In some embodiments, to adjust thevelocity of current movement, the drive system is configured to turnaway from the direction of current movement in response to the one ormore processors determining that the grass value is less than or equalto the mowing threshold.

Some embodiments further include one or more bumper sensors. In somesuch embodiments, the drive system is configured to turn in response toat least one of the one or more bumper sensors contacting an adjacentobject. Some embodiments further include a wire sensor configured todetect an electromagnetic field of a wire located along a boundary of amowing area. In some such embodiments, the drive system is configured toturn in response to the wire sensor detecting the electromagnetic fieldof the wire.

In some embodiments, the one or more processors are configured toprevent the mowing threshold from decreasing below a minimum thresholdlevel and prevent the mowing threshold from increasing above a maximumthreshold level. Some embodiments further include a communication modulethat is configured to wirelessly communicate with a mobile device toreceive a user-selected threshold.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a non-grass value by applying a machine learning algorithm tothe one or more images, instruct the drive system to maintain adirection of current movement for the autonomous mower based on acomparison between the non-grass value and a mowing threshold, instructthe drive system to adjust a velocity of current movement for theautonomous mower in response to determining that the non-grass value isgreater than or equal to the mowing threshold, determine a trigger ratethat indicates how often the non-grass value is greater than or equal tothe mowing threshold within a predefined period of time, decrease themowing threshold by a predefined increment in response to determiningthat the trigger rate is lower than a lower threshold rate, and increasethe mowing threshold by a predefined increment in response todetermining that the trigger rate is greater than an upper thresholdrate.

In some embodiments, the machine learning algorithm includes aconvolutional neural network. In some embodiments, to adjust thevelocity of current movement, the drive system is configured to turnaway from the direction of current movement in response to the one ormore processors determining that the non-grass value is greater than orequal to the mowing threshold.

Some embodiments further include one or more bumper sensors. In somesuch embodiments, the drive system is configured to turn in response toat least one of the one or more bumper sensors contacting an adjacentobject. Some embodiments further include a wire sensor configured todetect an electromagnetic field of a wire located along a boundary of amowing area. In some such embodiments, the drive system is configured toturn in response to the wire sensor detecting the electromagnetic fieldof the wire.

In some embodiments, the one or more processors are configured toprevent the mowing threshold from decreasing below a minimum thresholdlevel and prevent the mowing threshold from increasing above a maximumthreshold level. Some embodiments further include a communication modulethat is configured to wirelessly communicate with a mobile device toreceive a user-selected threshold.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors (e.g., a pair of motors) for propulsion andmaneuvering. The exemplary disclosed autonomous mower also includes oneor more blades for mowing, one or more cameras for capturing one or moreimages, and one or more processors. The one or more processors areconfigured to generate a grass value by applying a machine learningalgorithm to the one or more images, instruct the drive system tomaintain a current direction in response to determining that the grassvalue is greater than a mowing threshold, instruct the drive system toturn in response to determining that the grass value is less than orequal to the mowing threshold, determine a trigger rate that indicateshow often the grass value is less than the mowing threshold within apredefined period of time, and decrease the mowing threshold by apredefined increment in response to determining that the trigger rate isgreater than an upper threshold rate.

In some embodiments, the machine learning algorithm includes aconvolutional neural network. In some embodiments, the drive system isconfigured to turn a randomly-selected degree in response to the one ormore processors determining that the grass value is less than or equalto the mowing threshold.

Some embodiments further include one or more bumper sensors. In somesuch embodiments, the drive system is configured to turn in response toat least one of the one or more bumper sensors contacting an adjacentobject. Some embodiments further include a wire sensor configured todetect an electromagnetic field (having a particular strength andfrequency) of a wire located along a boundary of a mowing area. In somesuch embodiments, the drive system is configured to turn in response tothe wire sensor detecting the electromagnetic field of the boundarywire. The boundary wire may be positioned above ground or underground(e.g. one to three inches deep).

In some embodiments, the one or more processors are configured toprevent the mowing threshold from decreasing below a minimum thresholdlevel. In some embodiments, the one or more processors are configured toincrease the mowing threshold by the predefined increment in response todetermining that the trigger rate is less than a lower threshold rate.In some such embodiments, the one or more processors are configured toprevent the mowing threshold from increasing above a maximum thresholdlevel.

Some embodiments further include a communication module that isconfigured to wirelessly communicate with a mobile device to receive auser-selected threshold. In some such embodiments, the one or moreprocessors are configured to adjust the mowing threshold to theuser-selected threshold as a manual override.

An exemplary disclosed method for operating an autonomous mower includescapturing image data via one or more vision sensors of the autonomousmower and generating, via one or more processors of the autonomousmower, a non-grass value by applying a machine learning algorithm to theimage data. The exemplary disclosed method also includes steering, via adrive system, the autonomous mower to maintain a current direction inresponse to determining that the non-grass value is less than a mowingthreshold and turning the autonomous mower, via the drive system, inresponse to determining that the non-grass value is greater than orequal to the mowing threshold. The exemplary disclosed method alsoincludes determining, via the one or more processors, a trigger ratethat indicates how often the non-grass value exceeds the mowingthreshold within a predefined period of time and decreasing, via the oneor more processors, the mowing threshold by a first predefined incrementin response to determining that the trigger rate is less than a lowerthreshold rate.

In some embodiments, the machine learning algorithm includes aconvolutional neural network. In some embodiments, turning theautonomous mower includes turning the autonomous mower arandomly-selected degree.

Some embodiments further include one or more bumper sensors of theautonomous mower and turning the autonomous mower, via the drive system,in response to at least one of the one or more bumper sensors contactingan adjacent object. Some embodiments further include monitoring, via awire sensor of the autonomous mower, for an electromagnetic field of awire located along a boundary of a mowing area and turning theautonomous mower, via the drive system, in response to the wire sensordetecting the electromagnetic field of the boundary wire.

Some embodiments further include preventing the mowing threshold fromdecreasing below a minimum threshold level. Some embodiments furtherinclude increasing the mowing threshold by a second predefined incrementin response to determining that the trigger rate is greater than anupper threshold rate.

Some embodiments further include receiving, via a communication moduleof the autonomous mower, a user-selected threshold from a mobile deviceand adjusting the mowing threshold to the user-selected threshold as amanual override.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a non-grass value by applying a machine learning algorithm tothe one or more images, instruct the drive system to maintain a currentdirection in response to determining that the non-grass value is lessthan a mowing threshold, instruct the drive system to turn in responseto determining that the non-grass value is greater than or equal to themowing threshold, determine a trigger rate that indicates how often thenon-grass value exceeds the mowing threshold within a predefined periodof time, and decrease the mowing threshold by a predefined increment inresponse to determining that the trigger rate is less than a lowerthreshold rate.

An exemplary disclosed method for operating an autonomous mower includescapturing image data via one or more vision sensors of the autonomousmower and generating, via one or more processors of the autonomousmower, a grass value by applying a machine learning algorithm to theimage data. The exemplary disclosed method also includes steering, via adrive system, the autonomous mower to maintain a current direction inresponse to determining that the grass value is greater than a mowingthreshold and turning the autonomous mower, via the drive system, inresponse to determining that the grass value is less than or equal tothe mowing threshold. The exemplary disclosed method also includesdetermining, via the one or more processors, a trigger rate thatindicates how often the grass value is less than the mowing thresholdwithin a predefined period of time and decreasing, via the one or moreprocessors, the mowing threshold by a first predefined increment inresponse to determining that the trigger rate is greater than an upperthreshold rate.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a grass value by applying an image recognition algorithm to theone or more images, instruct the drive system to maintain a currentdirection in response to determining that the grass value is greaterthan a mowing threshold, instruct the drive system to turn in responseto determining that the grass value is less than or equal to the mowingthreshold, determine a trigger rate that indicates how often the grassvalue is less than the mowing threshold within a predefined period oftime, and decrease the mowing threshold by a predefined increment inresponse to determining that the trigger rate is greater than an upperthreshold rate.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a grass value by applying an image recognition algorithm to theone or more images, instruct the drive system to maintain a currentdirection of movement in response to determining that the grass value isgreater than a mowing threshold, instruct the drive system to change thecurrent direction of movement in response to determining that the grassvalue is less than or equal to the mowing threshold, determine a triggerrate that indicates how often the grass value is less than the mowingthreshold within a predefined period of time, and decrease the mowingthreshold by a predefined increment in response to determining that thetrigger rate is greater than an upper threshold rate.

An exemplary disclosed autonomous mower includes a drive systemincluding one or more motors for propulsion and maneuvering. Theexemplary disclosed autonomous mower also includes one or more bladesfor mowing, one or more cameras for capturing one or more images, andone or more processors. The one or more processors are configured togenerate a grass value by applying an image recognition algorithm to theone or more images, instruct the drive system to maintain a currentspeed in response to determining that the grass value is greater than amowing threshold, instruct the drive system to change the current speedin response to determining that the grass value is less than or equal tothe mowing threshold, determine a trigger rate that indicates how oftenthe grass value is less than the mowing threshold within a predefinedperiod of time, and decrease the mowing threshold by a predefinedincrement in response to determining that the trigger rate is greaterthan an upper threshold rate.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a side elevational view of an autonomous lawn mower embodimentfeaturing a vision assembly.

FIG. 2 is a diagram of the autonomous lawn mower of FIG. 1 mowing alawn.

FIG. 3 is an exemplary process that the autonomous lawn mower of FIG. 1executes to automatically adjust a sensitivity for steering purposes.

FIG. 4 is another exemplary process that the autonomous lawn mower ofFIG. 1 executes to automatically adjust a sensitivity for steeringpurposes.

DETAILED DESCRIPTION

This description describes one or more embodiments and should not limitthe invention to those embodiments. The description explains principlesof the invention to enable one of ordinary skill in the art tounderstand and apply the principles to practice both the describedembodiments and other embodiments that may come to mind. The invention'sscope should cover all embodiments that might fall within the scope ofthe claims, either literally or under the doctrine of equivalents.

In general, an exemplary embodiment of the invention includes anautonomous lawn mower. As used herein, the terms “lawn mower” and“mower” refer to a device, machine, and/or vehicle that maintains anappearance and/or condition of terrain (e.g., a lawn, a field, a yard, apark, etc.) by cutting grass and/or other plants. Exemplary lawn mowersinclude residential lawn mowers, commercial lawn mowers, tractors,landscaping machinery, other lawn-maintenance vehicles, etc. Theexemplary autonomous lawn mower disclosed herein includes a visionassembly that determines whether the area in front of the lawn mower is“mowable.” In response to determining that the area is mowable, the lawnmower is configured to move forward. In response to determining that thearea is unmowable, the lawn mower is configured to turn, changedirection, change speed, and/or change velocity. As used herein, theterm “mowable” refers to a condition of a terrain over which a lawnmower is able to travel and cut grass and/or other plants withoutdamaging the lawn mower and/or object(s) located on the terrain.Exemplary mowable terrain includes uncovered grass, a combination ofgrass and small weeds, grass lightly covered by leaves and/or twigs,etc. As used herein, the term “unmowable” refers to a condition of aterrain over which a lawn mower is unable to travel and cut grass and/orother plants without damaging the lawn mower and/or object(s) located onthe terrain. Exemplary unmowable terrain includes terrain covered byunmowable objects (e.g., chairs, toys, etc.), terrain heavily covered byleaves and/or sticks, etc.

Exemplary autonomous mowers disclosed herein are configured to (i)generate a grass value by feeding image data to an image-recognitionalgorithm, such as a machine learning algorithm (e.g., a convolutionalneural network), and (ii) compare the grass value to the mowingthreshold. If the grass value is greater than the mowing threshold, theautonomous mower determines that mowable terrain is in front of theautonomous mower and, thus, continues to move forward toward the mowableterrain. If the grass value is less than or equal to the mowingthreshold, the autonomous mower determines that unmowable terrain is infront of the autonomous mower and, thus, performs an obstacle avoidancemaneuver away from the unmowable terrain.

Exemplary methods and apparatuses disclosed herein enable an autonomousmower to automatically adjust a mowing threshold to dynamicallycalibrate a sensitivity of the autonomous mower. For example, when aportion of the lawn has dry grass, bare spots and/or is partiallycovered (e.g., by leaves, twigs, etc.), the autonomous mower may havedifficulty determining with a high degree of confidence whether thatportion of the lawn is mowable or unmowable. In such instances, whetherthe autonomous mower identifies the lawn as mowable or unmowable isaffected by the mowing threshold. For example, increasing the mowingthreshold decreases a likelihood that lawn is identified as mowable, anddecreasing the mowing threshold increases a likelihood that lawn isidentified as mowable. The exemplary autonomous mower decreases themowing threshold upon determining that the mower is undesirablyidentifying unmowable terrain too frequently and increases the mowingthreshold upon determining that it is undesirably identifying unmowableterrain too infrequently. That is, the exemplary autonomous mower isconfigured to dynamically recalibrate its sensitivity to improve itsidentification of mowable and unmowable terrain.

Referring to the figures, FIG. 1 includes a lawn mower 110 that isautonomous. As used herein, an “autonomous mower” refers to a mower thatis capable of controlling its motive functions without direct driverinput). The lawn mower 110 includes a vision assembly 113 that includesa vision sensor 114 and a vision processor 115. For example, as a drivesystem 105 propels and steers the lawn mower 110 about a lawn, thevision processor 115 receives data (e.g., image data) from the visionsensor 114 and extracts relevant information from the data for theapplication of internal, vision-based logic to identify objects orsurfaces in front of the lawn mower 110. In the exemplary embodiment,the vision sensor 114 may comprise a two-dimensional (2D) camera, athree-dimensional (3D) camera, a 360-degree camera, a radar sensor, aLidar sensor, an ultrasonic sensor, and/or any other sensor-type that isable to collect data of the terrain in front of the lawn mower 110. Thevision processor 115 is communicatively coupled to the vision sensor 114and is configured to receive the data collected by the vision sensor114. The vision processor 115 is configured to perform one or moreinitial processing steps (for example, data normalization,dimensionality reduction, etc.) of the collected data before that datais analyzed to determine whether the lawn mower 110 is approachingmowable or unmowable terrain.

In some embodiments, the vision assembly 113 includes a plurality ofvision sensors (e.g., in any combination of the exemplary types ofvision sensors). For example, the vision assembly 113 may include two ormore cameras that each capture images in front and/or to the side of thelawn mower 110. The vision assembly 113 may stitch images captured fromdifferent cameras together to form a single image of a surrounding areaadjacent to lawn mower 110. For example, to stitch a plurality of imagestogether, the vision processor 115 uses stitching software to identifyobject(s) within each of the collected images, match object(s) that arewithin a plurality of the collected images, calibrate the collectedimages with respect to each other, and blend the calibrated imagestogether. Additionally or alternatively, the plurality of vision sensorsmay include a Lidar sensor to supplement a visible light camera. TheLidar sensor may be configured to continuously determine a distancebetween lawn mower 110 and an obstacle, for example, to facilitate thedetection and/or identification of obstacles in low-light environments.In other embodiments, radar or an ultrasonic sensor may be used as asupplement or alternate to a visible light camera.

The vision processor 115 of the exemplary embodiment is communicativelycoupled to a main board 101. In the exemplary embodiment, the main board101 includes a main processor 102, a drive controller 103 forcontrolling a drive system 105, and a blade controller 104 forcontrolling a blade system 106. In other embodiments, the main board 101includes the vision processor 115. The drive system 105 is configured toaccelerate, decelerate, brake, turn, reverse, change direction, changespeed, change velocity and/or perform other motive functions of the lawnmower 110. For example, the drive system 105 includes one or more drivemotors 108 (e.g., a pair of motors) to propel the lawn mower 110 forwardand/or backward and provide maneuverability of the lawn mower 110.Further, the blade system 106 includes one or more blades 119 for mowinggrass and/or other plants. For example, the one or more blades 119 arerotated, braked, and/or shut off based on instructions from the bladecontroller 104.

In the exemplary embodiment, each of the vision processor 115, the mainprocessor 102, the drive controller 103, and the blade controller 104 isformed of at least one chip capable of storing and executinginstructions. For example, each of the vision processor 115, the mainprocessor 102, the drive controller 103, and the blade controller 104may combine any number of an ARM chip, a DSP, or GPU, among otherprocessors. Further, in some embodiments, the vision processor 115, themain processor 102, the drive controller 103, and/or the bladecontroller 104 are integrally formed into a single processor orcontroller such that one processor or controller performs the functionsof the vision processor 115, the main processor 102, the drivecontroller 103, and/or the blade controller 104.

Further, in the exemplary embodiment, the vision processor 115 and/orthe main processor 102 uses an image recognition algorithm, such as aconvolutional neural network and/or another machine learning model, todetermine whether or not the lawn mower 110 is approaching mowablegrass. That is, the lawn mower 110 uses a convolutional neural networkand/or another image recognition algorithm to determine a grass valueand/or a non-grass value. The grass value represents a likelihood thatmowable grass is in front of the lawn mower 110, and the non-grass valuerepresents a likelihood that unmowable terrain is in front of the lawnmower 110.

Image recognition algorithms are configured to detect object(s) withinan image and/or characteristics of image(s). Machine learning models area form of artificial intelligence (AI) that enable a system toautomatically learn and improve from experience without being explicitlyprogrammed by a programmer for a particular function. For example,machine learning models access data and learn from the accessed data toimprove performance of a particular function. Exemplary types of machinelearning models include decision trees, support vectors, clustering,Bayesian networks, sparse dictionary learning, rules-based machinelearning, etc. Another type of machine learning model is an artificialneural network, which is inspired by biological neural networks. Anartificial neural network includes a collection of nodes that areorganized in layers to perform a particular function (e.g., tocategorize an input). Each node is trained (e.g., in an unsupervisedmanner) to receive an input signal from a node of a previous layer andprovide an output signal to a node of a subsequent layer. An exemplarytype of artificial neural network is a convolutional neural network.

A convolutional neural network is a type of artificial neural networkthat includes one or more convolutional layers, one or more poolinglayers, and one or more fully-connected layers to perform a particularfunction. For example, a convolutional neural network includesconvolutional layer(s) and fully-connected layer(s) to categorize and/oridentify object(s) within an image. Typically, the convolutionallayer(s) are performed before the fully-connected layer(s).

A convolutional layer includes one or more filters (also known askernels or feature detectors). Each filter is a weighted matrix (e.g., a3×3 matrix, a 5×5 matrix, a 7×7 matrix). For example, a first element ofthe matrix has a weight of ‘1.’ a second element of the matrix has aweight of ‘0,’ a third element of the matrix has a weight of ‘2,’ etc.Further, each filter is convolved across the length and width of aninput image to generate a feature map corresponding to that filter. Forexample, the filter is convolved across a grid of pixels of the inputimage by computing a dot product between the weighted matrix of thefilter and a numerical representation of a tile of pixels of the inputimage. A convolution refers to a mathematical combination of twofunctions to produce another function to express how one functionaffects another. Further, each filter is trained to detect a particularfeature (e.g., a color-based feature, an edge-based feature, etc.)within the tiles of the input image. In turn, each feature map includesinformation for that particular feature within the input image. Byconvolving a filter across the input image, the convolutional layer isable to obtain identification information for a plurality of featureswhile also reducing a size of the image being analyzed to increaseprocessing speeds. Thus, because each filter of a convolutional layergenerates a respective feature map, a convolutional layer with aplurality of filters generates a plurality of feature maps. Further, asubsequent convolutional layer receives the feature maps as inputinformation to be analyzed.

A convolutional neural network also typically includes one or morepooling layer(s). In some embodiments, a convolutional neural networkincludes a pooling layer after each convolutional layer such that eachpooling layer is connected to a preceding convolutional layer. In otherembodiments, a convolutional neural network may include more or lesspooling layers and/or may arrange the pooling layers differentlyrelative to the convolutional layers. A pooling layer is a form ofdown-sampling that is configured to further reduce the size of the imagebeing analyzed to further increase processing speeds. For example, apooling layer partitions each feature map into a grid of non-overlappingsections. Each non-overlapping section includes a cluster of data pointswithin the feature map. For example, each pool may consist of a 2×2 gridof data points. For each non-overlapping section, the pooling layergenerates one value based on the corresponding data points. In someembodiments, the pooling layer includes max pooling in which thegenerated value is the highest value of the corresponding data points.In other embodiments, the pooling layer includes min pooling in whichthe generated value is the lowest value of the corresponding data pointsor average pooling in which the generated value is the average of thecorresponding data points. Further, in some embodiments, a convolutionallayer further includes one or more rectified linear unit (ReLU) layersto further reduce the size of the image being analyzed. A ReLU is anon-linear function that changes each negative value within a featuremap to a value of ‘0.’

After the convolutional and pooling layers are performed, one or morefully-connected layers of the convolutional neural network areperformed. The fully connected layer(s) are configured to identifyfeatures of and/or objects within the input image based on theinformation generated by the convolution and pooling layers. Eachfully-connected layer includes a plurality of nodes. Each node isconnected to each node or map value of the previous layer, and eachconnection to the previous layer has its own respective weight. Further,each node is trained (e.g., in an unsupervised manner) to provide anoutput signal to a node of subsequent layer. In some embodiments, thefinal fully connected layer generates a value representing a likelihoodor certainty that a feature (e.g., mowable grass) is or is not presentin the input image. Further, in some embodiments, the convolutionalneural network back-propagates the corresponding uncertainty through theconvolutional neural network to retrain and improve the convolutionalneural network for subsequent input images. Convolutional neuralnetworks are described in greater detail in “Gradient-Based LearningApplied to Document Recognition,” which was published by LeCun et al. inProceedings of the IEEE 86.11 (1998).

Further, the lawn mower 110 may include one or more other sensors tofacilitate avoidance of unmowable surfaces. For example, the lawn mower110 includes a collision assembly 111 for complementing theimage-recognition system of the vision assembly 113. The collisionassembly 111 includes one or more collision sensors 112 (sometimesreferred to as bumper sensors) that are configured to detect a physicalobstruction upon contact. Upon detecting an object, at least one of theone or more collision sensors 112 is configured to transmit a signal tothe main processor 102. In some embodiments, the main processor 102transmits a signal to (i) the blade controller 104 to stop rotation ofthe one or more blades 119 and/or (ii) the drive controller 103 to causethe lawn mower 110 to turn and/or otherwise move away from and/orperform another evasive maneuver away from the detected obstacle.Additionally or alternatively, the lawn mower 110 includes a wire sensor120 (also referred to as a magnetic field sensor). The wire sensor 120is configured to sense an electromagnetic field of a boundary wiredefining a mowing area. In some embodiments, the wire sensor 120includes one or more coils configured to detect the electromagneticfield of the boundary wire. Typically, a boundary wire is either stakedin place above ground (at or near ground level) or is buried underground(e.g. one to three inches deep). Upon detecting the boundary wire, thewire sensor 120 is configured to transmit a signal to the main processor102 and/or the drive controller 103 to cause the lawn mower 110 to turnand/or otherwise move away from the detected boundary wire and, thus,keep the lawn mower 110 within the predefined mowing area.

The lawn mower 110 of the exemplary embodiment also includes acommunication module 121 that is configured to wirelessly communicatewith a nearby mobile device (e.g., a smart phone, a wearable, a smartwatch, a tablet, etc.). For example, the communication module 121 isconfigured to communicate with a mobile device of a user to receiveuser-selected settings for the autonomous system of the lawn mower 110.The communication module 121 includes hardware (e.g., processors,memory, storage, antenna, etc.) and software that enable wirelesscommunication with a nearby mobile device. In the exemplary embodiment,the communication module 121 includes a wireless personal area network(WPAN) module and/or a wireless local area network (WLAN) that isconfigured to wirelessly communicate with a nearby mobile device viashort-range wireless communication protocol(s). In some embodiments, thecommunication module 121 is configured to implement the Bluetooth®and/or Bluetooth® Low Energy (BLE) protocols. The Bluetooth® and BLEprotocols are set forth in Volume 6 of the Bluetooth® Specification 4.0(and subsequent revisions) maintained by the Bluetooth® Special InterestGroup.

Additionally or alternatively, the communication module 121 isconfigured to wirelessly communicate via Wi-Fi®, Near FieldCommunication (NFC), ultra-wide band (UWB) communication, ultra-highfrequency (UHF) communication, low frequency (LF) communication, and/orany other communication protocol that enables communication with anearby mobile device. Further, in some embodiments, the communicationmodule 121 includes wireless network interface(s) to enablecommunication with external networks. The external network(s) may be apublic network, such as the Internet; a private network, such as anintranet; or combinations thereof, and may use a variety of networkingprotocols now available or later developed. For example, thecommunication module 121 may be configured to communicate with cellularnetworks, such as Global System for Mobile Communications (GSM),Universal Mobile Telecommunications System (UMTS), Long Term Evolution(LTE), Code Division Multiple Access (CDMA), etc.

In the exemplary embodiment, the lawn mower 110 includes a battery 107as a power source. For example, the battery 107 is configured to powerthe vision assembly 113, the drive system 105, the blade system 106, thewire sensor 120, the collision assembly 111, the communication module121, and/or any other electronic components of the lawn mower 110. Thebattery 107 may include a rechargeable lithium-ion battery, a nickelcadmium battery, a nickel metal hydride battery, a lead acid battery,and/or any other type of power source (e.g., a fuel cell).

In operation, the vision sensor 114 and/or another sensor of the visionassembly is configured to collect image data of an area in front ofand/or to the side of the lawn mower 110. The vision processor 115and/or the main processor 102 are configured to apply a machine learningalgorithm (e.g., a convolutional neural network) and/or otherimage-recognition algorithm to the collected image data to generate agrass value that indicates a likelihood of mowable grass being in frontof the lawn mower 110. That is, the image-recognition algorithm, such asa convolutional neural network, used by the vision processor 115 and/orthe main processor 102, provides a grass value as an output uponprocessing the image data as input. The grass value is a numericalrepresentation (e.g., a whole number, a percentage, a decimal, etc.) ofa likelihood that the lawn mower 110 is approaching mowable terrain.Additionally or alternatively, the vision processor 115 and/or the mainprocessor 102 are configured to generate a non-grass value by applyingthe image-recognition algorithm to the collected image data. The grassvalue is a numerical representation (e.g., a whole number, a percentage,a decimal, etc.) of a likelihood that the lawn mower 110 is approachingunmowable terrain.

Further, the vision processor 115 and/or the main processor 102 areconfigured to compare the grass value to a mowing threshold to determinehow to autonomously steer the lawn mower 110. The mowing thresholdrepresents a cutoff point that indicates whether mowable or unmowableterrain is in front of the lawn mower 110. For example, the visionprocessor 115 and/or the main processor 102 determine that mowable grassis in front of the lawn mower 110 in response to determining that thegrass value is greater than the mowing threshold. In turn, the drivesystem 105 is configured to maintain a current travel direction of thelawn mower 110 upon receiving an instruction to do so from the visionprocessor 115 and/or the main processor 102. In contrast, the visionprocessor 115 and/or the main processor 102 determine that unmowableterrain is in front of the lawn mower 110 in response to determiningthat the grass value is less than or equal to the mowing threshold. Inturn, the drive system 105 is configured to autonomously change adirection, speed, and/or velocity of current movement of the lawn mower110 upon receiving an instruction to do so from the vision processor 115or the main processor 102. In some embodiments, the drive system 105 isconfigured to turn the lawn mower 110 by a randomly-selected degree. Inother embodiments, the drive system 105 is configured to turn the lawnmower 110 by a degree that corresponds with the grass value and/or adifference between the grass value and the mowing threshold.

The vision processor 115 and/or the main processor 102 are configured toautomatically adjust the mowing threshold to adjust the autonomoussystem of the lawn mower 110. For example, if the vision processor 115and/or the main processor 102 frequently determine that terrain in frontof the lawn mower 110 is unmowable, the vision processor 115 and/or themain processor 102 lower the mowing threshold to reduce how oftenterrain is identified as unmowable. In contrast, if the vision processor115 and/or the main processor 102 rarely determine that terrain in frontof the lawn mower 110 is unmowable, the vision processor 115 and/or themain processor 102 raise the mowing threshold to increase how oftenterrain is identified as unmowable.

In the exemplary embodiment, the main processor 102 and/or the visionprocessor 115 are configured to determine a trigger rate of the lawnmower 110. In some embodiments, the trigger rate is determined based onhow often the grass value is less than the mowing threshold within apredefined period of time. In other embodiments, the trigger rate isdetermined based on how often the lawn mower 110 has performed a turningand/or other evasive motion due to the detection of unmowable terrainwithin a predefined period of time. Further, the main processor 102and/or the vision processor 115 are configured to use the trigger rateto determine whether to adjust the mowing threshold. For example, themain processor 102 and/or the vision processor 115 are configured to (i)decrease the mowing threshold by a predefined increment in response todetermining that the trigger rate is greater than an upper thresholdrate and/or (ii) increase the mowing threshold by a predefined incrementin response to determining that the trigger rate is less than a lowerthreshold rate. That is, the upper threshold rate enables the mainprocessor 102 and/or the vision processor 115 to determine whetherunmowable terrain is being undesirably identified too frequently, andthe lower threshold rate enables the main processor 102 and/or thevision processor 115 to determine whether unmowable terrain is beingundesirably identified too infrequently. The upper threshold rate andthe lower threshold rate may be initially set and/or adjusted via agraphical user interface (GUI) of the lawn mower 110 and/or via a mobiledevice in wireless communication with the communication module 121 ofthe lawn mower 110.

The predefined increment at which the mowing threshold is increased canbe either the same as, or different from, the predefined increment atwhich the mowing threshold is decreased. Further, in some embodiments,the main processor 102 and/or the vision processor 115 are not allowedto (i) increase the mowing threshold above a maximum level threshold (toprevent the mowing threshold from being too restrictive) and/or (ii)decrease the mowing threshold below a minimum level threshold (toprevent the mowing threshold from being too permissive). Additionally oralternatively, the vision processor 115 and/or the main processor 102are configured to adjust the mowing threshold to a user-selectedthreshold as manual override in response to the communication module 121receiving the user-selected threshold from a mobile device of anoperator.

In some embodiments, the rate at which the trigger rate is periodicallycalculated is less than that at which images are collected andprocessed. For example, the trigger rate is calculated less frequentlythan images are collected and processed to prevent the mowing thresholdfrom being repeatedly adjusted too frequently. In an exemplaryembodiment, images are captured by the vision sensor 114 and processedby the main processor 102 and/or the vision processor 115 at a rate ofabout 5 frames per second and 30 frames per second. Further, in anexemplary embodiment, the main processor 102 and/or the vision processor115 are configured to (i) decrease the mowing threshold in response todetecting a trigger rate of 0.4 triggers per second over a predefinedperiod of time (e.g., 30 seconds) and/or (ii) increase the mowingthreshold in response to detecting a trigger rate of 0.1 triggers persecond over the predefined period of time. In another exemplaryembodiment, the main processor 102 and/or the vision processor 115 areconfigured to (i) decrease the mowing threshold in response to detectingbetween about 5 and 10 triggers in 1 minute and/or (ii) increase themowing threshold in response to detecting about 5 triggers over a 5minute period. That is, in some embodiments, the trigger rate isdetermined based on different time durations for determining whether toincrease the mowing threshold and decrease the mowing threshold,respectively.

Additionally or alternatively, the vision processor 115 and/or the mainprocessor 102 are configured to compare the non-grass value to a mowingthreshold to determine how to autonomously steer the lawn mower 110. Forexample, the vision processor 115 and/or the main processor 102determine that mowable grass is in front of the lawn mower 110 inresponse to determining that the non-grass value is less than the mowingthreshold. In turn, the drive system 105 is configured to maintain acurrent travel direction of the lawn mower 110 upon receiving aninstruction to do so from the vision processor 115 or the main processor102. In contrast, the vision processor 115 and/or the main processor 102determine that unmowable terrain is in front of the lawn mower 110 inresponse to determining that the non-grass value is greater than orequal to the mowing threshold. In turn, the drive system 105 isconfigured to autonomously change a direction, speed, and/or velocity ofcurrent movement of the lawn mower 110 upon receiving an instruction todo so from the vision processor 115 or the main processor 102. Further,the main processor 102 and/or the vision processor 115 are configured todetermine whether to adjust the mowing threshold based on a trigger ratethat indicates how often the non-grass value exceeds the mowingthreshold within a predefined period of time. For example, the mainprocessor 102 and/or the vision processor 115 are configured to (i)increase the mowing threshold by a predefined increment in response todetermining that the trigger rate is greater than an upper thresholdrate and/or (ii) decrease the mowing threshold by a predefined incrementin response to determining that the trigger rate is less than a lowerthreshold rate.

Further, in some embodiments, the vision processor 115 and/or the mainprocessor 102 are configured to autonomously steer the lawn mower 110based on both the grass value and the non-grass value. For example, thevision processor 115 and/or the main processor 102 are configured to (i)maintain a current direction of the lawn mower 110 in response todetermining that the grass value is greater than a first threshold, (ii)change a direction, speed, and/or velocity of current movement of thelawn mower 110 to perform an obstacle avoidance routine in response todetermining that the non-grass value is greater than a second threshold,and/or (iii) decelerate the lawn mower 110 in response to determiningthat both the grass value and the non-grass value are less than a thirdthreshold.

The main processor 102 of the exemplary embodiment also is configured tochange a direction, speed, and/or velocity of current movement of thelawn mower 110 to perform obstacle avoidance routines based on othersensors of the lawn mower 110. For example, the main processor 102 isconfigured to instruct the drive system 105 to change a direction,speed, and/or velocity of current movement of the lawn mower 110 inresponse to (i) at least one of the one or more collision sensors 112detecting an adjacent object and/or (ii) the wire sensor 120 detectingan electromagnetic field of a wire located along a boundary of a mowingarea.

Turning to FIG. 2 , the lawn mower 110 is located within an exemplarylawn 200. In the exemplary embodiment, portions of the lawn 200 includeuncovered grass 202, fully covered grass 204, and dry or partiallycovered grass 206. For example, the uncovered grass 202 is completelyuncovered, the covered grass 204 is completely covered by objects (e.g.,leaves, twigs, etc.), and the dry or partially covered grass 206includes dry grass and/or grass that is partially covered by objects(e.g., leaves, twigs, etc.).

Further, as depicted in FIG. 2 , the lawn mower 110 has travelled withinthe lawn 200 along a path 208. As the lawn mower 110 travels across thelawn 200, the vision processor 115 and/or the main processor 102 performimage recognition to determine whether approaching terrain is mowable orunmowable. For example, at each point along the path 208, the visionprocessor 115 and/or the main processor 102 (i) generate a grass valueand/or non-grass value, (ii) compare the value(s) to mowingthreshold(s), and (iii) maintain or adjust the path 208 of the lawnmower 10 based on the comparison(s). Further, the vision processor 115and/or the main processor 102 continuously and/or periodically determinea trigger rate based on how often the path 208 of the lawn mower 110 isadjusted.

In the exemplary embodiment, the lawn mower 110 reaches point 210 in thelawn 200 in front of the dry or partially covered grass 206. Forexample, the vision processor 115 and/or the main processor 102 (i)generate a grass value based on an image of the dry or partially coveredgrass 206 captured by the vision sensor 114, (ii) compare the grassvalue to the mowing threshold, and (iii) instruct the drive system 105to turn the lawn mower 110 upon determining that the grass value is lessthan the mowing threshold. Further, the vision processor 115 and/or themain processor 102 also increase the trigger rate if the number of timesunmowable terrain has been detected within a predefined period of timehas increased.

Further, the lawn mower 110 performs the same grass value determination,mowing threshold comparison, and trigger rate calculation at (i) point212 in front of the dry or partially covered grass 206, (ii) point 214in front of the fully covered grass 204 and the dry or partially coveredgrass 206, (iii) point 216 in front of dry or partially covered grass206, and (iv) point 218 in front of the fully covered grass 204. At eachof the points 210, 212, 214, 216, 218, the vision processor 115 and/orthe main processor 102 determine that the corresponding grass value isless than or equal to the mowing threshold. In turn, at each of thepoints 210, 212, 214, 216, 218, the vision processor 115 and/or the mainprocessor 102 instruct the drive system 105 to turn the lawn mower 110away from the fully covered grass 204 and/or the dry or partiallycovered grass 206.

In the exemplary embodiment, after the lawn mower 110 has turned atpoint 218, the trigger rate has increased to be above an upper thresholdrate. In turn, the main processor 102 decreases the mowing threshold bya predefined increment. If the mowing threshold is decreased to a levelthat is less than the grass value associated with the dry or partiallycovered grass 206, the vision processor 115 and/or the main processor102 of the lawn mower 110 will instruct the drive system 105 to driveand mow through the upcoming portion of the dry or partially coveredgrass 206.

FIG. 3 is a flowchart of an exemplary method 300 to automatically adjustsensitivity of an image-recognition system of an autonomous mower. Theflowchart is representative of machine readable instructions that arestored in memory and include one or more programs that, when executed bya processor (such as the main processor 102, the drive controller 103,the blade controller 104, and/or the vision processor 115 of FIG. 1 ),cause the autonomous mower to perform in accordance with method 300.While the exemplary program is described with reference to the flowchartillustrated in FIG. 3 , many other methods of automatically adjustingsensitivity of an image-recognition system of an autonomous mower mayalternatively be used. For example, the order of execution of the blocksmay be rearranged, changed, eliminated, or combined to perform thesealternate methods. Because the exemplary method 300 is disclosed inconnection with the components of FIG. 1 , some functions of thosecomponents will not be described in detail below.

Initially, at block 302, the vision sensor 114 and/or another sensor ofthe vision assembly collect image data of an area in front of and/or tothe side of the lawn mower 110. At block 304, the vision processor 115and/or the main processor 102 generate a grass value based on thecollected image data. For example, the vision processor 115 and/or themain processor 102 submit the collected image data to a convolutionalneural network and/or other image-recognition algorithm (e.g., anothermachine learning algorithm). For example, the grass value may be a wholenumber, a percentage, a decimal, or any other numerical representationthat indicates a likelihood that mowable grass is in front of the lawnmower 110.

At block 306, the vision processor 115 and/or the main processor 102compare the grass value to a mowing threshold. In response to the visionprocessor 115 and/or the main processor 102 determining that the grassvalue is not greater than (i.e., is less than or equal to) the mowingthreshold, the method 300 proceeds to block 308, at which the drivesystem 105 autonomously turns the lawn mower 110 in a differentdirection. Upon completing block 308, the method 300 proceeds to block320. Otherwise, returning to block 306, the method 300 proceeds to block310 in response to the vision processor 115 and/or the main processor102 determining that the grass value is greater than the mowingthreshold.

At block 310, the main processor 102 identifies whether the lawn mower110 includes other sensor(s) for monitoring a surrounding area of thelawn mower 110. In response to the main processor 102 identifying thatthe lawn mower 110 does not include another such sensor, the method 300proceeds to block 312, at which the drive system 105 autonomouslypropels the lawn mower 110 in its current direction (e.g., via the oneor more drive motors 108). Upon completing block 312, the method 300proceeds to block 320. Otherwise, in response to the main processor 102identifying that the lawn mower 110 includes other such sensor(s) (e.g.,the one or more collision sensors 112, the wire sensor 120, etc.), themethod 300 proceeds to block 314.

At block 314, the main processor 102 collects data from those othersensor(s). At block 316, the main processor 102 determines whether anobject in front of the lawn mower 110 or a boundary of a lawn isdetected based on the other collected data. In response to the mainprocessor 102 detecting an object or a lawn boundary, the method 300proceeds to block 308, at which the drive system 105 autonomously turnsthe lawn mower 110 in a different direction. Upon completing block 308,the method 300 proceeds to block 320. Otherwise, in response to the mainprocessor 102 not detecting an object or an outer lawn boundary, themethod 300 proceeds to block 312, at which the drive system 105autonomously propels the lawn mower 110 in its current direction (e.g.,via the one or more drive motors 108). Upon completing block 312, themethod 300 proceeds to block 320.

At block 320, the main processor 102 and/or the vision processor 115determine a trigger rate of the lawn mower 110. For example, the triggerrate indicates (i) how often the grass value exceeds the mowingthreshold and/or (ii) how often the lawn mower 110 performs a turningand/or other obstacle avoidance motion due to the detection of unmowableterrain within a predefined period of time.

At block 322, the main processor 102 and/or the vision processor 115determine whether the trigger rate is greater than an upper thresholdrate. In response to the main processor 102 and/or the vision processor115 determining that the trigger rate is greater than the upperthreshold rate, the method 300 proceeds to block 324, at which the mainprocessor 102 and/or the vision processor 115 decrease the mowingthreshold (e.g., by a predefined increment). Upon completing block 324,the method 300 returns to block 302. Otherwise, returning to block 322,the method 300 proceeds to block 326 in response to the main processor102 and/or the vision processor 115 determining that the trigger rate isnot greater than (i.e., is less than or equal to) the upper thresholdrate.

At block 326, the main processor 102 and/or the vision processor 115determine whether the trigger rate is less than a lower threshold rate.In response to the main processor 102 and/or the vision processor 115determining that the trigger rate is less than the lower threshold rate,the method 300 proceeds to block 328, at which the main processor 102and/or the vision processor 115 increase the mowing threshold (e.g., bya predefined increment). Upon completing block 328, the method 300returns to block 302. Otherwise, returning to block 326, the method 300returns to block 302 without adjusting the mowing threshold in responseto the main processor 102 and/or the vision processor 115 determiningthat the trigger rate is not less than (i.e., is greater than or equalto) the lower threshold rate.

FIG. 4 is a flowchart of another exemplary method 400 to automaticallyadjust sensitivity of an image-recognition system of an autonomousmower. The flowchart is representative of machine readable instructionsthat are stored in memory and include one or more programs that, whenexecuted by a processor (such as the main processor 102, the drivecontroller 103, the blade controller 104, and/or the vision processor115 of FIG. 1 ), cause the autonomous mower to perform in accordancewith method 400. While the exemplary program is described with referenceto the flowchart illustrated in FIG. 4 , many other methods ofautomatically adjusting sensitivity of an image-recognition system of anautonomous mower may alternatively be used. For example, the order ofexecution of the blocks may be rearranged, changed, eliminated, orcombined to perform these alternate methods. Because the exemplarymethod 400 is disclosed in connection with the components of FIG. 1 ,some functions of those components will not be described in detailbelow.

Initially, at block 402, the vision sensor 114 and/or another sensor ofthe vision assembly collect image data of an area in front of and/or tothe side of the lawn mower 110. At block 404, the vision processor 115and/or the main processor 102 generate a non-grass value based on thecollected image data. For example, the vision processor 115 and/or themain processor 102 submit the collected image data to a convolutionalneural network and/or other image-recognition algorithm (e.g., anothermachine learning algorithm). For example, the non-grass value may be awhole number, a percentage, a decimal, or any other numericalrepresentation that indicates a likelihood that unmowable terrain is infront of the lawn mower 110.

At block 406, the vision processor 115 and/or the main processor 102compare the non-grass value to a mowing threshold. In response to thevision processor 115 and/or the main processor 102 determining that thenon-grass value is not less than (i.e., is greater than or equal to) themowing threshold, the method 400 proceeds to block 408, at which thedrive system 105 autonomously turns the lawn mower 110 in a differentdirection. Upon completing block 408, the method 400 proceeds to block420. Otherwise, returning to block 406, the method 400 proceeds to block410 in response to the vision processor 115 and/or the main processor102 determining that the non-grass value is less than the mowingthreshold.

At block 410, the main processor 102 identifies whether the lawn mower110 includes other sensor(s) for monitoring a surrounding area of thelawn mower 110. In response to the main processor 102 identifying thatthe lawn mower 110 does not include another such sensor, the method 400proceeds to block 412, at which the drive system 105 autonomouslypropels the lawn mower 110 in its current direction (e.g., via the oneor more drive motors 108). Upon completing block 412, the method 400proceeds to block 420. Otherwise, in response to the main processor 102identifying that the lawn mower 110 includes other such sensor(s) (e.g.,the one or more collision sensors 112, the wire sensor 120, etc.), themethod 400 proceeds to block 414.

At block 414, the main processor 102 collects data from those othersensor(s). At block 416, the main processor 102 determines whether anobject in front of the lawn mower 110 or a boundary of a lawn isdetected based on the other collected data. In response to the mainprocessor 102 detecting an object or a lawn boundary, the method 400proceeds to block 408, at which the drive system 105 autonomously turnsthe lawn mower 110 in a different direction. Upon completing block 408,the method 400 proceeds to block 420. Otherwise, in response to the mainprocessor 102 not detecting an object or an outer lawn boundary, themethod 400 proceeds to block 412, at which the drive system 105autonomously propels the lawn mower 110 in its current direction (e.g.,via the one or more drive motors 108). Upon completing block 412, themethod 400 proceeds to block 420.

At block 420, the main processor 102 and/or the vision processor 115determine a trigger rate of the lawn mower 110. For example, the triggerrate indicates (i) how often the non-grass value exceeds the mowingthreshold and/or (ii) how often the lawn mower 110 performs a turningand/or other obstacle avoidance motion due to the detection of unmowableterrain within a predefined period of time.

At block 422, the main processor 102 and/or the vision processor 115determine whether the trigger rate is greater than an upper thresholdrate. In response to the main processor 102 and/or the vision processor115 determining that the trigger rate is greater than the upperthreshold rate, the method 400 proceeds to block 424, at which the mainprocessor 102 and/or the vision processor 115 increase the mowingthreshold (e.g., by a predefined increment). Upon completing block 424,the method 400 returns to block 402. Otherwise, returning to block 422,the method 400 proceeds to block 426 in response to the main processor102 and/or the vision processor 115 determining that the trigger rate isnot greater than (i.e., is less than or equal to) the upper thresholdrate.

At block 426, the main processor 102 and/or the vision processor 115determine whether the trigger rate is less than a lower threshold rate.In response to the main processor 102 and/or the vision processor 115determining that the trigger rate is less than the lower threshold rate,the method 400 proceeds to block 428, at which the main processor 102and/or the vision processor 115 decrease the mowing threshold (e.g., bya predefined increment). Upon completing block 428, the method 400returns to block 402. Otherwise, returning to block 426, the method 400returns to block 402 without adjusting the mowing threshold in responseto the main processor 102 and/or the vision processor 115 determiningthat the trigger rate is not less than (i.e., is greater than or equalto) the lower threshold rate.

While the foregoing description details specific embodiments of theinvention, those skilled in the art will appreciate that one couldmodify or adapt those embodiments based on the teachings herein.Accordingly, the disclosed embodiments are merely illustrative andshould not limit the invention's scope.

What is claimed is:
 1. A mower, comprising: a drive system including oneor more motors configured for propulsion and maneuvering; one or moreblades for mowing; one or more cameras for capturing one or more images;and one or more processors configured to: generate a grass value byapplying an image recognition algorithm to the one or more images;instruct the drive system to autonomously adjust a velocity of currentmovement for the mower in response to determining that the grass valueis less than or equal to a mowing threshold; determine a trigger ratethat indicates how often the grass value is less than or equal to themowing threshold within a predefined period of time; decrease the mowingthreshold by a decrement in response to determining that the triggerrate is greater than an upper threshold rate; and increase the mowingthreshold by an increment in response to determining that the triggerrate is less than a lower threshold rate.
 2. The mower of claim 1,wherein the decrement is equal to the increment.
 3. The mower of claim1, wherein the decrement is different than the increment.
 4. The mowerof claim 1, wherein, to autonomously adjust the velocity of currentmovement, the drive system is configured to autonomously change adirection of current movement by turning in response to the one or moreprocessors determining that the grass value is less than or equal to themowing threshold.
 5. The mower of claim 1, further including one or morebumper sensors, wherein the drive system is configured to autonomouslychange a direction of current movement by turning in response to atleast one of the one or more bumper sensors detecting an adjacentobject.
 6. The mower of claim 1, further including a wire sensorconfigured to detect an electromagnetic field of a wire located along aboundary of a mowing area, wherein the drive system is configured toautonomously change a direction of current movement by turning inresponse to the wire sensor detecting the electromagnetic field of thewire.
 7. The mower of claim 1, further including one or more sensors,and wherein the one or more processors is configured to instruct thedrive system to turn based on a signal transmitted by the one or moresensors.
 8. The mower of claim 1, wherein the one or more processors areconfigured to prevent the mowing threshold from decreasing below aminimum threshold level.
 9. The mower of claim 1, wherein the one ormore processors are configured to prevent the mowing threshold fromincreasing above a maximum threshold level.
 10. The mower of claim 1,further including a communication module that is configured towirelessly communicate with a mobile device to receive a user-selectedthreshold.
 11. A mower, comprising: a drive system including one or moremotors for propulsion and maneuvering; one or more blades for mowing;one or more cameras for capturing one or more images; and one or moreprocessors configured to: generate a non-grass value by applying animage recognition algorithm to the one or more images; instruct thedrive system to autonomously adjust a velocity of current movement forthe mower in response to determining that the non-grass value is greaterthan or equal to a mowing threshold; determine a trigger rate thatindicates how often the non-grass value is greater than or equal to themowing threshold within a predefined period of time; decrease the mowingthreshold by a decrement in response to determining that the triggerrate is lower than a lower threshold rate; and increase the mowingthreshold by an increment in response to determining that the triggerrate is greater than an upper threshold rate.
 12. The mower of claim 11,wherein the decrement is equal to the increment.
 13. The mower of claim11, wherein the decrement is different than the increment.
 14. The mowerof claim 11, wherein, to autonomously adjust the velocity of currentmovement, the drive system is configured to autonomously change adirection of current movement by turning in response to the one or moreprocessors determining that the non-grass value is greater than or equalto the mowing threshold.
 15. The mower of claim 11, further includingone or more bumper sensors, wherein the drive system is configured toautonomously change a direction of current movement by turning inresponse to at least one of the one or more bumper sensors detecting anadjacent object.
 16. The mower of claim 11, further including a wiresensor configured to detect an electromagnetic field of a wire locatedalong a boundary of a mowing area, wherein the drive system isconfigured to autonomously change a direction of current movement byturning in response to the wire sensor detecting the electromagneticfield of the wire.
 17. The mower of claim 11, further including one ormore sensors, and wherein the one or more processors is configured toinstruct the drive system to turn based on a signal transmitted by theone or more sensors.
 18. The mower of claim 11, wherein the one or moreprocessors are configured to prevent the mowing threshold fromdecreasing below a minimum threshold level.
 19. The mower of claim 11,wherein the one or more processors are configured to prevent the mowingthreshold from increasing above a maximum threshold level.
 20. The mowerof claim 11, further including a communication module that is configuredto wirelessly communicate with a mobile device to receive auser-selected threshold.